package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.BaseBankInfo;
import com.softer.wxzj.entity.BaseContractorBankInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BaseContractorBankInfoMapper {
    int deleteByPrimaryKey(String id);

    int insert(BaseContractorBankInfo record);

    int insertSelective(BaseContractorBankInfo record);

    BaseContractorBankInfo selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(BaseContractorBankInfo record);

    int updateByPrimaryKey(BaseContractorBankInfo record);

    /**
     * 查询服务开启的承办银行
     * @return
     */
    List<BaseContractorBankInfo> getOpenList();

    /**
     * 检验银行账户是否添加过
     *
     * @param bankAcc 银行账户
     * @return 承办银行ID
     */
    String checkBankAcc(String bankAcc);

    /**
     * 查看缴存中是否在使用
     *
     * @param id 承办银行ID
     * @return 缴存申请ID
     */
    String checkDepReq(String id);

    /**
     * 查询承办银行下拉列表
     *
     * @return 承办银行列表
     */
    List<BaseBankInfo> getAllList();

    /**
     * 通过银行id查询承办银行
     * @param id
     * @return
     */
    BaseContractorBankInfo getInfoByBankId(String id);

    /**
     * 精确查询承办银行列表
     *
     * @param baseContractorBankInfo 查询实体
     * @return 承办银行列表
     */
    List<BaseContractorBankInfo> getList(BaseContractorBankInfo baseContractorBankInfo);

    /**
     * 模糊查询承办银行列表
     *
     * @param fuzzy 查询实体
     * @return 承办银行列表
     */
    List<BaseContractorBankInfo> fuzzySearch(String fuzzy);

    BaseBankInfo selectBankNameById(String id);

    /**
     * 查询该条数据
     *
     * @param id
     * @return
     */
    BaseContractorBankInfo getInfoBybankId(String id);

    /**
     * 更改承办银行的最后结算日期
     *
     * @param bankCode
     * @param tallyTimeEnd
     * @return
     */
    int updateSettlementTime(@Param("bankCode") String bankCode, @Param("tallyTimeEnd") String tallyTimeEnd);

    /**
     * 查询承办银行的
     *
     * @param bankCode
     * @return
     */
    String selectSettlementTime(String bankCode);

    /**
     * 校验银行是否添加过
     *
     * @param bankId 银行ID
     * @return 承办银行ID
     */
    String checkBankId(String bankId);

    /**
     *
     * @return
     */
    String getMinTime();

    /**
     * 查询比这个值还达的第一个值
     * @param date
     * @return
     */
    String getMinTimeByDate(String date);
}
